package com.mdb.open.trade.domain.po.trade;

/*
* Copyright (C), 2017-2019 澳发科技(MDB)
* FileName: TfLoanApplyBaseInfoService.java
* Author:   you.yichao
* Date:     2019-08-08
* History:
* <author>          <time>          <version>          <desc>
* you.yichao         2019-08-08          V1.00             代码生成器初始生成代码
* -----------------------------------------------------------
* 作者姓名           修改时间           版本号            描述
*/


import com.baomidou.mybatisplus.annotation.*;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.open.common.enums.trade.status.BusinessReviewStatusEnum;
import com.mdb.open.common.enums.trade.status.LoanApplyAmlStatusEnum;
import com.mdb.open.common.enums.trade.status.LoanApplyOrderStatusEnum;
import com.mdb.open.common.enums.trade.status.RiskReviewStatusEnum;
import com.mdb.open.common.enums.trade.type.BusinessTypeEnum;
import com.mdb.open.common.enums.trade.type.GuaranteeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* 类描述：
*  贸易融资申请基本资料表实体类
*
* @author you.yichao
* @date 2019-08-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tf_loan_apply_base_info")
public class LoanApplyBaseInfo extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
     * 唯一性Id
     */
    @ApiModelProperty(value = "唯一性Id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 客户编码
     */
    @ApiModelProperty(value = "客户编码")
    @TableField("customer_code")
    private String customerCode;

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    @TableField("customer_name")
    private String customerName;

    /**
    * 商户客户编码
    */
    @ApiModelProperty(value = "商户客户编码")
    @TableField("mcustomer_code")
    private String mcustomerCode;

    /**
     * 商户编号
     */
    @ApiModelProperty(value = "商户编号")
    @TableField("merchant_no")
    private String merchantNo;

    /**
     * 商户名称
     */
    @ApiModelProperty(value = "商户名称")
    @TableField("merchant_name")
    private String merchantName;

    /**
     * 担保人名字
     */
    @ApiModelProperty(value = "担保人名字")
    @TableField("guarantee_name")
    private String guaranteeName;

    /**
     * 担保方式
     */
    @TableField(value = "guarantee_type", insertStrategy = FieldStrategy.NOT_NULL)
    private GuaranteeTypeEnum guaranteeType;

    /**
     * 平台子账号
     */
    @ApiModelProperty(value = "平台子账号")
    @TableField("platform_acc")
    private String platformAcc;

    /**
     * 融资申请单号
     */
    @ApiModelProperty(value = "融资申请单号")
    @TableField("apply_order_no")
    private String applyOrderNo;

    /**
     * 融资档案编号
     */
    @ApiModelProperty(value = "融资档案编号")
    @TableField("trade_file_no")
    private String tradeFileNo;

    /**
     * 业务编号
     */
    @ApiModelProperty(value = "业务编号")
    @TableField("business_no")
    private String businessNo;

    /**
     * 融资金额
     */
    @ApiModelProperty(value = "融资金额")
    @TableField("finance_amount")
    private BigDecimal financeAmount;

    /**
     * 预计融资金额
     */
    @ApiModelProperty(value = "预计融资金额")
    @TableField("expected_amount")
    private BigDecimal expectedAmount;

    /**
     * 币种
     */
    @ApiModelProperty(value = "币种")
    private String ccy;

    /**
     * 业务模式
     */
    @ApiModelProperty(value = "业务模式")
    @TableField("business_type")
    private BusinessTypeEnum businessType;

    /**
     * 收款单位中文名称
     */
    @ApiModelProperty(value = "收款单位中文名称")
    @TableField("receive_acc_cn_name")
    private String receiveAccCnName;

    /**
     * 收款单位英文名称
     */
    @ApiModelProperty(value = "收款单位英文名称")
    @TableField("receive_acc_en_name")
    private String receiveAccEnName;

    /**
     * 收款单位地址
     */
    @ApiModelProperty(value = "收款单位地址")
    @TableField("receive_address")
    private String receiveAddress;

    /**
     * 收款账号
     */
    @ApiModelProperty(value = "收款账号")
    @TableField("receive_acc_no")
    private String receiveAccNo;

    /**
     * 收款账户开户行
     */
    @ApiModelProperty(value = "收款账户开户行")
    @TableField("receive_acc_branch")
    private String receiveAccBranch;

    /**
     * swift code
     */
    @ApiModelProperty(value = "swift code")
    @TableField("swift_code")
    private String swiftCode;

    /**
     * 申请状态
     */
    @ApiModelProperty(value = "申请状态")
    @TableField("apply_status")
    private LoanApplyOrderStatusEnum applyStatus;

    /**
     * 业务审批状态
     */
    @ApiModelProperty(value = "业务审批状态")
    @TableField("approval_status")
    private BusinessReviewStatusEnum approvalStatus;

    /**
     * 反洗钱状态
     */
    @ApiModelProperty(value = "反洗钱状态")
    @TableField("aml_status")
    private LoanApplyAmlStatusEnum amlStatus;

    /**
     * 风控审批状态
     */
    @ApiModelProperty(value = "风控审批状态")
    @TableField("risk_status")
    private RiskReviewStatusEnum riskStatus;

    /**
     * 业务拒绝原因
     */
    @ApiModelProperty(value = "业务拒绝原因")
    @TableField("biz_reject_reason")
    private String bizRejectReason;

    /**
     * 反洗钱拒绝原因
     */
    @ApiModelProperty(value = "反洗钱拒绝原因")
    @TableField("aml_reject_reason")
    private String amlRejectReason;

    /**
     * 风控拒绝原因
     */
    @ApiModelProperty(value = "风控拒绝原因")
    @TableField("risk_reject_reason")
    private String riskRejectReason;

    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    @TableField("apply_time")
    private LocalDateTime applyTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 乐观锁版本号
     */
    @ApiModelProperty(value = "乐观锁版本号")
    @Version
    private Integer version;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    @TableLogic
    private boolean deleted;

}
